load("@rules_cc//cc:defs.bzl", "cc_library")

package(default_visibility = ["//visibility:public"])

cc_library(
    name = "boost.typeof",
    hdrs = glob(
        [
            "include/**/*.hpp",
        ],
        exclude = [
            "include/boost/typeof/dmc/typeof_impl.hpp",
            "include/boost/typeof/encode_decode_params.hpp",
            "include/boost/typeof/int_encoding.hpp",
            "include/boost/typeof/modifiers.hpp",
            "include/boost/typeof/msvc/typeof_impl.hpp",
            "include/boost/typeof/pointers_data_members.hpp",
            "include/boost/typeof/register_functions.hpp",
            "include/boost/typeof/register_functions_iterate.hpp",
            "include/boost/typeof/register_mem_functions.hpp",
            "include/boost/typeof/template_encoding.hpp",
            "include/boost/typeof/template_template_param.hpp",
            "include/boost/typeof/vector50.hpp",
            "include/boost/typeof/vector100.hpp",
            "include/boost/typeof/vector150.hpp",
            "include/boost/typeof/vector200.hpp",
        ],
    ),
    features = [
        "parse_headers",
    ],
    includes = ["include"],
    textual_hdrs = [
        "include/boost/typeof/dmc/typeof_impl.hpp",
        "include/boost/typeof/encode_decode_params.hpp",
        "include/boost/typeof/int_encoding.hpp",
        "include/boost/typeof/modifiers.hpp",
        "include/boost/typeof/msvc/typeof_impl.hpp",
        "include/boost/typeof/pointers_data_members.hpp",
        "include/boost/typeof/register_functions.hpp",
        "include/boost/typeof/register_functions_iterate.hpp",
        "include/boost/typeof/register_mem_functions.hpp",
        "include/boost/typeof/template_encoding.hpp",
        "include/boost/typeof/template_template_param.hpp",
        "include/boost/typeof/vector50.hpp",
        "include/boost/typeof/vector100.hpp",
        "include/boost/typeof/vector150.hpp",
        "include/boost/typeof/vector200.hpp",
    ],
    deps = [
        "@boost.config",
        "@boost.preprocessor",
        "@boost.type_traits",
    ],
)
